package main

type A interface {
	int | string | float64
}

type B interface {
	~int | ~string | ~*string | ~float64 | ~chan int | ~func() | ~[]string
}

func a[T A](a T) {

}

func b[T B](a T) {

}

func main() {
	// v1 := 1
	// v2 := "1"
	// v3 := 1.1
	// type x int
	// var v4 x = 1
	// a(v1)
	// a(v2)
	// a(v3)
	// a(v4)
	// b(v1)
	// b(&v2)
	// b(v4)
}
